import { clear } from 'console';

let timer: NodeJS.Timeout | undefined;
// import.meta.hot.data  热更新共享数据
//  import.meta.hot.data 就是 多次触发热的模块 共享的数据 不然每次热更新都是重新初始化
if (import.meta.hot) {
  //初始化count
  if (!import.meta.hot.data.count) {
    import.meta.hot.data.count = 0;
  }

  import.meta.hot.dispose(() => {
    // 模块销毁时逻辑 清除定时器
    // 意思就是 触发了热更新 该模块销毁了 重新生成了一个新模块
    if (timer) {
      clearInterval(timer);
    }
  });
}

export function initState() {
  const getCount = () => {
    const data = import.meta.hot.data || { count: 0 };

    data.count = data.count + 1;
    return data.count;
  };

  timer = setInterval(() => {
    let countEle = document.querySelector<HTMLSpanElement>('#count');
    countEle.innerText = getCount() + '';
  }, 1000);
}
